Personal computers (used herein to contemplate an array of computing devices) continue to evolve into devices that are as much or more at home in the living room than the office. For example, a popular use for PCs is to use them as DVRs (digital video recorders), sometimes known as PVRs (personal video recorders). Used in this way, a PC can record media programming such as television programs of interest for subsequent playback, or download to external devices. One of the evolutionary aspects associated with computers that is broadening their uses includes the evolution of its user interface (UI).
Historically, computers have been interacted with by what will be referred to herein as a two-foot UI, or proximity UI. A two-foot UI is designed to be used in connection with a user who is approximately two feet away, or about an arm's length, from a computer screen. Almost all of the graphical user interfaces (GUIs) that have been designed for computers are two-foot UIs. But recently, the idea of a ten-foot UI has materialized. A ten-foot UI facilitates interaction with a computer from a greater distance—on the order of a television-viewing distance. Another descriptive term for this type of UI includes a “Distance User Interface” (DUI). Of course, the term “ten-foot UI” or “DUI” does not contemplate interacting with the computer at only a precise ten feet, but rather is used herein to describe the concept of operating a PC from about a television-viewing distance.
An example of such a DUI is described in co-pending application Ser. No. 10/174,619, entitled “User Interface for Operating a Computer From A Distance”. An example of another such system and the interaction therewith can be found in U.S. Pat. No. 6,313,851 entitled “User Friendly Remote System Interface” and U.S. Pat. No. 6,898,765 entitled “User-Friendly Remote System Interface With Menu Highlighting.” Each of these references is expressly incorporated by reference herein.
A user-interface shell (UIS) is type of environment that interacts with a variety of applications (including a computer's operating system) to control the presentation of data to a user. Generally, ten-foot UI applications are not compatible with systems that present ten-foot UIs. Just as applications need to be configured to work in connection with a two-foot UI, applications must be configured to work in connection with a ten-foot UI. Such configuration can be particularly problematic for both software developers and UI developers.
One of the reasons that this is problematic is associated with ensuring interoperability. That is, a UI must be compatible with a desired application. Software vendors must make their applications compatible with the UI that is going to be used to present data associated with its application. The more shells that are to be interacted with, the greater the burden faced by a software vendor to develop applications that can be used by a large pool of people.
One potential resolution to this issue is to provide only a single UI, as applicable here, a single ten-foot UI. This scenario would be great for independent software vendors (ISVs) because they would need to program their applications to interact with only a single ten-foot UI. But this scenario leaves much to be desired from other software manufacturers, especially those in the business of developing alternative UI shells (alternative to a first, or default shell). It may be the case that a certain software vendor wants to provide a customized ten-foot UI. But that entity that wants to develop a customized ten-foot UI is faced with the daunting task of ensuring that its UI is compatible with various products offered by various other software vendors, absent the present invention.
Moreover, if the vendor were to try to independently develop an alternative UIS, such as an alternative ten-foot UIS, then although it would be able to customize its shell with functionality, branding, etc., it would still need to be able to accomplish all of the tasks of a UIS (communicating with other applications and hardware devices, etc.). Such an endeavor would not only be resource-intensive but would be associated with a high degree of uncertainty regarding the extent to which it will be received by the market and compatible with various hardware and software products. As such, the current state of the art could be improved by providing, among other things, a method and system for allowing a desired software vendor to provide a customized ten-foot UI while not bearing the burden associated with developing a fully interoperable UI.